MySQL IF THEN 在 WHERE 子句中
全部标签 我正在尝试使用选择查询根据来自网页的输入从我的sql数据库中获取值。我粘贴了查询和下面的代码。问题是查询需要为每个变量输入以获取数据,因为我使用的是AND。如果我不输入某个值,它不会抛出任何输出。请告诉我如何从数据库中获取数据,即使某些变量为空字符串。Stringhost=reqt.getParameter("hostname");Stringuuid=reqt.getParameter("cinum");Stringcdir=reqt.getParameter("custcode");Stringcustomer=reqt.getParameter("custname");Strin
我在返回数据的模型中有这段代码$this->db->select('title,content,date');$where="name='Joe'ANDstatus='boss'";$this->db->where($where);$query=$this->db->get('mytable');return$query->result();我正在使用手册where,我想知道是否允许更新和可能删除的手册概念。此代码根据单个where条件更新表$data=array('title'=>$title,'name'=>$name,'date'=>$date);$this->db->where
我有一个tasks表:+-------+-------------------+---------------------+---------------------+|rowid|title|start_task|due_date|+-------+-------------------+---------------------+---------------------+|1|PaintApartment|2018-03-0107:00:00|2018-03-1615:00:00|+-------+-------------------+---------------------
我正在使用MySQL数据库表scholarship_discount。其中我有三个字段,分别是maxPercentage、minPercentage和name。因此,如果所有字段都满足我的条件,我想运行查询以获取行。我正在使用Laravel5.6框架。问题是当我在MySqlWorkbench中运行这个查询然后得到正确的结果但是当尝试通过Laravel然后得到错误的结果。问题示例::如果我给uservalueas78那么我得到rowid5,否则96然后rowis1.ok没问题。使用mysqlworkbench。但是当我给出98,96,97,99时,我没有得到任何结果。为什么?我不知道
我构建了一个查询:publicfunctiongetContacts($limit,$start,$search){$this->db->limit($limit,$start);if(!empty($search)){$this->db->like('name',$search);$this->db->or_like('last_name',$search);$this->db->or_like('phone_number',$search);$this->db->or_like('created_at',$search);$this->db->or_like('note',$sea
我想使用一个简单的查询来减少表中的值,如下所示:UPDATE`Table`SET`foo`=`foo`-1WHERE`bar`IN(1,2,3,4,5)这在上面的示例中效果很好,其中IN列表仅包含唯一值,因此每个匹配行的foo列都会减1。问题是当列表包含重复项时,例如:UPDATE`Table`SET`foo`=`foo`-1WHERE`bar`IN(1,3,3,3,5)在这种情况下,我希望bar为3的行递减三倍(或递减三),并且1和5减1。有没有办法改变行为,或者我可以使用替代查询来获得所需的行为?我专门使用MySQL5.7,以防有任何MySQL特定的解决方法有用。更新:我正在用脚本
比如这个:SELECTid,count(*),公司来自工作按公司分组其中id是jobs的主键 最佳答案 类似问题:WhydoesMySQLallow"groupby"queriesWITHOUTaggregatefunctions?这是MySQL特有的,不是ANSI标准SQL。大多数其他数据库引擎不允许未分组或未通过聚合函数运行的列。MySQL似乎保留了符合条件的第一行的值。具有此行为的聚合函数是FIRST(),尽管MySQL实现了它,但这似乎是未分组且未通过任何其他聚合函数运行的列的默认行为。在ANSI标准SQL中,你会这样做:S
给定这个SQL:SELECT*FROMmytableORDERBYmycolumn,RAND()假设mycolumn恰好只包含唯一值(因此包含足够的信息来执行ORDERBY),MySQL是否会短路操作并跳过评估剩下的呢? 最佳答案 我想这就是答案。Mysql使用不同的计划,不能执行惰性评估(o“短路”)。mysql>explainselect*fromavatarorderbyid;+----+-------------+--------+-------+---------------+---------+---------+---
这没有解决,但我找到了原因:MySQLViewcontainingUNIONdoesnotoptimizewell...InotherwordsSLOW!原帖:我正在使用游戏的数据库。有两个相同的表equipment和safety_dep_box。要检查玩家是否有一件设备,我想检查两个表。我不想做两个查询,而是想利用MySQL中的UNION功能。我最近了解到我可以创建一个View。这是我的观点:CREATEVIEWvAllEquipASSELECT*FROMequipmentUNIONSELECT*FROMsafety_dep_box;View创建得很好。但是当我运行时SELECT*F
我正在尝试创建一个将合并以下两个查询的查询。SELECTcampgroundid,(3959*acos(cos(radians(37))*cos(radians(lat))*cos(radians(lng)-radians(-122))+sin(radians(37))*sin(radians(lat))))ASdistanceFROMcampgroundHAVINGdistance我尝试将它们放入IN,但它返回了一个语法错误,我不知道如何修复。我尝试只删除HAVING并组合查询,但它说它无法弄清楚distance是什么。任何帮助表示赞赏。谢谢。OUTPUT:[campgroundid